Scheduling methods are commonly used in a data processing system to control submission of different work units to be executed (for example, jobs in a batch processing). For this purpose, several types of workload schedulers have been proposed in the last years to automate the submission of large quantities of jobs. An example of scheduler is described in “End-to-End Scheduling with Tivoli Workload Scheduler 8.1” V. Gucer, S. Franke, F. Knudsen, M. A. Lowry—ISBN 0738425079.
A scheduler submits the jobs according to a predefined plan. The plan establishes a flow of execution of the jobs according to several factors; typically, the factors affecting the flow of execution include temporal values (such as date, time, day of the week) and dependencies (such as completion of predecessor jobs or system resource availability).
The schedulers known in the art are very sophisticated in handling temporal and predecessor constraints. However, a very basic support is available for managing the problems relating to the availability of the resources that are used by the different jobs. Typically, most schedulers are able to resolve simple dependencies, which condition the submission of the jobs to a particular resource or set of resources. Moreover, the schedulers help an operator select the jobs to be submitted whenever their number exceeds a maximum allowable value (limiting the number of jobs that are running concurrently to avoid excessive contention for the resources of the system). For example, the operator can assign a weight to each job (representing a supposed impact of the job on the system performance); those weights are used by the scheduler to assign different priorities to the jobs to be submitted.
A drawback of the solutions described above is the lack of any efficient support for distributing and balancing a workload of the system. Indeed, the weights assigned to the jobs by the operator are very inaccurate in nature; moreover, those weights do not take into account a history of the different jobs. In any case, the proposed approach is unable to prevent overloading specific resources of the system (for example, when more jobs very intensive on that resource are submitted at the same time).
Document U.S. Pat. No. 6,591,262 discloses a system wherein the scheduler collaborates with a workload manager. The workload manager is a software component (included is an operating system), which manages the resources that are allocated to the different running jobs. In the proposed system, the scheduler maintains a profile for each job; the profile (build using statistics of previous executions of the job) defines an estimated usage of different resources of the system by the job. Whenever the job is submitted for execution, the corresponding profile is attached and passed to the workload manager. In this way, the workload manager can optimize the allocation of the resources of the system to the different running jobs.
However, the solution described in the cited document only acts on the jobs that are already in execution. Therefore, the proposed technique is unable to prevent the submission of potentially competing jobs. In any case, the advantageous effects of the devised collaborative scheme can only be achieved in systems wherein the operating system includes a workload manager, which has been adapted to receive the profiles from the scheduler.